package com.zzyl.service;


import com.zzyl.base.PageResponse;
import com.zzyl.base.ResponseResult;
import com.zzyl.dto.AlertDataPageQueryDto;
import com.zzyl.dto.AlertRuleDto;
import com.zzyl.dto.AlertRulePageQueryDto;
import com.zzyl.entity.AlertRule;
import com.zzyl.vo.AlertRuleVo;
import com.zzyl.vo.DeviceDataVo;

import java.util.List;

public interface AlertRuleService {
    /**
     * 获取单个告警规则
     */
    ResponseResult<AlertRule> findById(Long id);

    List<AlertRule> findAll();

    /**
     * 新增报警规则
     */
    void insert(AlertRuleDto alertRuleDto);

    /**
     * 更新报警规则
     */
    void update(AlertRule alertRule);

    /**
     * 删除告警规则
     */
    void delete(Long id);

    /**
     * 分页获取告警规则
     */
    ResponseResult<PageResponse<AlertRuleVo>> getPage(AlertRulePageQueryDto dto);

    /**
     * 启用或禁用告警规则
     */
    void startOrStop(Integer id, Integer status);

    /**
     * 校验设备上报数据，进行报警规则过滤处理
     */
    void alertFilter(DeviceDataVo deviceData);
}